package fr.utbm.tx52.stamp.logic.algorithm;

import fr.utbm.tx52.stamp.logic.utils.DateUtil;
import java.io.File;
import java.util.Calendar;
import java.util.Comparator;

/**
 * *
 *
 * Classe publique qui permet de d�finir le comparateur de l'objet "Date" en
 * impl�mentant la classe Comparator de fichiers.
 *
 * @author Julien GONZALVES (julien.gonzalves@utbm.fr) Laurent RUBY
 * (laurent.ruby@utbm.fr)
 *
 */
public class DateComparator implements Comparator<File> {

	/**
	 * *
	 * Fonction publique qui permet de comparer deux dates � partir de deux
	 * fichiers.
	 *
	 * @param _file1 Le premier fichier qui contient une date � comparer avec le
	 * deuxi�me fichier.
	 * @param _file2 Le deuxi�me fichier qui contient une date � comparer avec
	 * le premier fichier.
	 *
	 * @return Une valeur enti�re positive, nulle ou n�gative 0 si les dates de
	 * type Calendar sont identiques ; 1 si la date de type Calendar du premier
	 * fichier est inf�rieure, c'est-�-dire plus ancienne, que la date du
	 * deuxi�me fichier ; -1 si la date de type Calendar du premier fichier est
	 * sup�rieure, c'est-�-dire plus r�cente, que la date du deuxi�me fichier.
	 */
	public int compare(File _file1, File _file2) {

		//R�cup�ration des dates pr�sentes dans chacun des fichiers et stockage de ces valeurs dans des objets de type Calendar
		Calendar dateFile1 = DateUtil.getCalendarDateViaExif(_file1);
		Calendar dateFile2 = DateUtil.getCalendarDateViaExif(_file2);

		//On r�alise une comparaison classique 
		return dateFile1.compareTo(dateFile2);
	}
}
